/** 获取段落的目标元素 */
export function getRowTargetElement(ele, typeName) {
    let ret = [];
    if(ele.tagName === typeName) ret.push(ele);
    if(ele.childNodes) {
        for(let i = 0; i<ele.childNodes.length;i++) {
            let c = getRowTargetElement(ele.childNodes[i], typeName);
            ret = [...ret, ...c]
        }
    }
    return ret;
}

/** 判断段落元素是否是执行类型 */
export function isElementType(ele, typeName) {
    return ele && (ele.tagName === typeName || ele.nodeType === typeName || (ele.childNodes && Array.from(ele.childNodes).find(i=>isElementType(i, typeName))))
}

/**
 * 创建元素
 * @param typeName      元素类型
 * @param parentNode    父节点元素
 * @param options       配置
 * @returns {*}         元素
 */
export function createElement(typeName, parentNode, options) {
    let ele = document.createElement(typeName);
    if(options) {
        if(options.attr) {
            Object.keys(options.attr).forEach(key=>{
                ele.setAttribute(key, options.attr[key]);
            })
        }
        if(options.style) {
            Object.keys(options.style).forEach(key=>{
                ele.style[key]=options.style[key];
            })
        }
        if(options.className) {
            ele.className = options.className;
        }
        options.group && ele.setAttribute('group', options.group);
    }
    if(parentNode) {
        parentNode.appendChild(ele);
    }
    return ele;
}

/**
 * 根据元素获取文档内容元素
 * @param element
 */
export function getContentElement(element) {
    if(!element) {
        return null;
    } else if(element.parentNode.classList.include('c2d-doc')) {
        return element.parentNode;
    }
    return getContentElement(element.parentNode);
}
